package com.example.thegreatwall.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.thegreatwall.entity.TProduct;

/**
 * 套餐商品服务接口
 */
public interface TProductService extends IService<TProduct> {
    /**
     * 分页获取套餐列表
     *
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @param packageType 套餐类型
     * @return 分页数据
     */
    Page<TProduct> listTProducts(Integer pageNum, Integer pageSize, Integer packageType);

    /**
     * 获取套餐详情
     *
     * @param tProductId 套餐ID
     * @return 套餐详情
     */
    TProduct getTProductDetail(Integer tProductId);

    /**
     * 根据类型获取套餐列表
     *
     * @param packageType 套餐类型
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @return 分页数据
     */
    Page<TProduct> getTProductsByType(Integer packageType, Integer pageNum, Integer pageSize);

    /**
     * 搜索套餐
     *
     * @param keyword 关键词
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @return 分页数据
     */
    Page<TProduct> searchTProducts(String keyword, Integer pageNum, Integer pageSize);

    /**
     * 获取热门套餐
     *
     * @param pageNum 页码
     * @param pageSize 每页数量
     * @return 分页数据
     */
    Page<TProduct> getHotTProducts(Integer pageNum, Integer pageSize);
}
